package com.turing.post.transaction.util;

import java.math.BigInteger;
import java.util.Date;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;

@Remote
@Local
public interface MchChkAccCtlDao {
	/**
	 * 商户对账控制信息插入
	 * 
	 * @param mcac
	 *            商户对账控制信息对象
	 * @throws PCPSApplicationException
	 *             异常信息
	 */
	public void insert(MchChkAccCtl mcac) throws PCPSApplicationException;

	/**
	 * 商户对账控制信息更新
	 * 
	 * @param mcac
	 *            商户对账控制信息对象
	 * @throws PCPSApplicationException
	 *             异常信息
	 */
	public void update(MchChkAccCtl mcac) throws PCPSApplicationException;

	/**
	 * 根据商户号以及对帐日期检索对帐控制
	 * 
	 * @param mcac
	 * @return
	 */
	public MchChkAccCtl getMchChkAccCtlByKey(String merchantNo, Date checkDate);

	/**
	 * 对账状态综合查询列表,查询商户对账控制，按商户号、日期范围（默认当天）
	 * 
	 * @param issueCompanyNo
	 * @param merchantNo
	 *            下拉选择商户，有全选
	 * @param startDate
	 * @param endDate
	 * @param CheckResult
	 * @return
	 */
	public List<MchChkAccCtl> getMchChkAccCtlListByCondition(Integer page,
			String issueCompanyNo, String merchantNo, String startDate,
			String endDate, String checkResult);

	/**
	 * 对账状态综合查询记录数,查询商户对账控制，按商户号、日期范围（默认当天）
	 * 
	 * @param issueCompanyNo
	 * @param merchantNo
	 *            下拉选择商户，有全选
	 * @param startDate
	 * @param endDate
	 * @param CheckResult
	 * @return
	 */
	public BigInteger getMchChkAccCtlTotalByCondition(String issueCompanyNo,
			String merchantNo, String startDate, String endDate,
			String checkResult);

	/**
	 * 日终汇总统计查询
	 * 
	 * @param date
	 *            日终日期
	 * @return
	 */
	public List<Object[]> getMchChkAccCtlCount(String date);

	/**
	 * 日终汇总统计查看明细
	 * 
	 * @param date
	 *            日终日期
	 * @param checkResult
	 *            对账结果
	 * @return
	 */
	public List<MchChkAccCtl> getMchChkAccCtlCountDetail(String date,
			String checkResult);
}